import { User } from '../../domain/entities/user.entity';

export interface LoginResult {
  user: User;
  accessToken: string;
  refreshToken: string;
}

export interface IAuthService {
  register(username: string, password: string, email?: string): Promise<User>;
  login(username: string, password: string): Promise<LoginResult>;
  verifyToken(token: string): Promise<User | null>;
  refreshToken(refreshToken: string): Promise<{ accessToken: string; refreshToken: string } | null>;
  changePassword(userId: string, oldPassword: string, newPassword: string): Promise<boolean>;
  validatePermission(user: User, requiredPermission: string | string[]): boolean;
} 